<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .box{width:100px;height:100px;background: red;position: absolute;left:0;top:0;}
        .line{width:1px;height:400px;background: black;position: absolute;left:400px;top:0;}
    </style>
</head>
<body>
    <div class="box"></div>
    <div class="line"></div>
</body>
<script>

    const obox = document.querySelector(".box");

    // 目标
    const target = 400;
    // 步长
    let speed = 90;
    let t;

    document.onclick = function(){
        clearInterval(t);
        t = setInterval(()=>{
            // 停止条件：剩下距离不足一个步长
            if(target - obox.offsetLeft < speed){
                // 停止计时器
                clearInterval(t);
                // 停止计时器之后，将当前位置，直接设置为目标位置
                obox.style.left = target + "px";
            }else{
                // 按照步长，不断改变自身
                obox.style.left = obox.offsetLeft + speed + "px";
            }
        }, 500)
    }
    
</script>
</html>